package com.homework.phase1.module3;

import org.w3c.dom.ls.LSOutput;

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

//2. 编程题
//
// 编程获取两个指定字符串中的最大相同子串。
//
// 如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
//
// 提示： 将短的那个串进行长度依次递减的子串与较长的串比较
public class Homework2 {
    public static void main(String[] args) {

        //设置两个字符串
        String s1 = "asdafghjka";
        String s2 = "aaasdfg";

        //System.out.println(s1.indexOf(s2));
        //设置空字符串用于放置最大子串
        String max="";

        //双重循环遍历较短字符串的各种子字符串的情况
        //外圈控制substring的i值，即从字符串的第i个元素开始获取子字符串
        for (int i = 0; i < s2.length(); i++) {
            //内圈控制substring的j值，即从字符串的第j个元素前获取子字符串
            for (int j = i + 1; j <= s2.length(); j++) {
                //临时字符串放置子字符串
                String temp = s2.substring(i, j);

                //判断s1内是否包含temp子字符串并判断上一轮的max字符串与这一轮的temp字符串的长度，若temp大于max，则将temp继续放入max
                if (s1.contains(temp) && temp.length() > max.length() ) {

                    max = temp;

                }
            }
        }

        System.out.println(max);

    }


}
